SPDX-FileCopyrightText: 2014 Thanh Thi Truong SPDX-FileCopyrightText: 2024 AlICe laboratory https://alicelab.be
SPDX-License-Identifier: GPL-3.0-or-later
PYTHON INTERACTIVE CONSOLE 3.4.0 (default, Apr 15 2014, 12:26:10) [GCC 4.2.1 Compatible Apple LLVM 5.1 (clang-503.0.40)]
import bpy
import randomdef nettoyage():
    bpy.ops.object.select_all(action="SELECT")
    bpy.ops.object.delete(use_global=False)
nettoyage()--------------------------------------------#
--------------------------------------------#
DEFINITION DU MODULE DE BASE
def monModule(pos_X, pos_Y, pos_Z, dim_X, dim_Y, dim_Z, nom):
    mesVertices = [
        (-dim_X / 2, -dim_Y / 2, 0),
        (dim_X / 2, -dim_Y / 2, 0),
        (dim_X / 2, dim_Y / 2, 0),
        (-dim_X / 2, dim_Y / 2, 0),
        (-dim_X / 2, -dim_Y / 2, dim_Z),
        (dim_X / 2, -dim_Y / 2, dim_Z),
        (dim_X / 2, dim_Y / 2, dim_Z),
        (-dim_X / 2, dim_Y / 2, dim_Z),
    ]
    mesFaces = [
        (3, 2, 1, 0),
        (4, 5, 6, 7),
        (1, 5, 4, 0),
        (3, 7, 6, 2),
        (0, 4, 7, 3),
        (2, 6, 5, 1),
    ]
    monMesh = bpy.data.meshes.new("ModuleMesh")
    monObjet = bpy.data.objects.new("Module", monMesh)
    maScene = bpy.context.scene
    maScene.objects.link(monObjet)
    monMesh.from_pydata(mesVertices, [], mesFaces)
    monObjet.location = (pos_X, pos_Y, pos_Z)DIMENSIONS DES COULOIRS
LCoul = 1
lCoul = 1
hCoul = 1
LMur = 0.2DIMENSION DU MODULE CARRE
dim_ModX, dim_ModY, dim_ModZ = 3, 3, 1--------------------------------------------# — ====> ENTRER LE NOMBRE DE RANGÉES ------# --------------------------------------------#
a = random.randint(1, 4)
_Rangée = a--------------------------------------------# --------------------------------------------#
--------------------------------------------#
--------------------------------------------#
MUR 1
def monMur1(m, b, p, o):
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (1)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (-1.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        1 + LMur,
        LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (0.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (0)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        LMur,
        3 + LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (-0.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (1.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        2 + LMur,
        LMur,
        1,
        monModule,
    )
    print("mur 1 a ÈtÈ exÈcutÈ")MUR 2
def monMur2(m, b, p, o):
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (0.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (-1.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        2 + LMur,
        LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (-0.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (0)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        LMur,
        3 + LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (-1)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (1.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        1 + LMur,
        LMur,
        1,
        monModule,
    )
    print("mur 2 a ÈtÈ exÈcutÈ")MUR 3
def monMur3(m, b, p, o):
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (0)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (1.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        3 + LMur,
        LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (1.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (0)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        LMur,
        3 + LMur,
        1,
        monModule,
    )
    print("mur 3 a ÈtÈ exÈcutÈ")MUR 4
def monMur4(m, b, p, o):
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (0)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (1.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        3 + LMur,
        LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (1.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (0)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        LMur,
        3 + LMur,
        1,
        monModule,
    )
    print("mur 4 a ÈtÈ exÈcutÈ")MUR 5
def monMur5(m, b, p, o):
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (-1.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (1)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        LMur,
        1 + LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (-0.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (0.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        2 + LMur,
        LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (0.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (-0.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        LMur,
        2 + LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (1)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (-1.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        1 + LMur,
        LMur,
        1,
        monModule,
    )
    print("mur 5 a ÈtÈ exÈcutÈ")MUR 6
def monMur6(m, b, p, o):
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (-1.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (1)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        LMur,
        1 + LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (0)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (0.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        3 + LMur,
        LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (1.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (-0.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        LMur,
        LMur + 2,
        1,
        monModule,
    )
    print("mur 6 a ÈtÈ exÈcutÈ")MUR 7
def monMur7(m, b, p, o):
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (-0.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (1.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        2 + LMur,
        LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (0.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (1)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        LMur,
        1 + LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (1.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (-0.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        LMur,
        2 + LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (1)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (0.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        1 + LMur,
        LMur,
        1,
        monModule,
    )
    print("mur 7 a ÈtÈ exÈcutÈ")MUR 8
def monMur8(m, b, p, o):
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (-1)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (1.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        1 + LMur,
        LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (-0.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (1)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        LMur,
        1 + LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (0.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (0.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        2 + LMur,
        LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (1.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (-0.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        LMur,
        2 + LMur,
        1,
        monModule,
    )
    print("mur 8 a ÈtÈ exÈcutÈ")MUR 9
def monMur9(m, b, p, o):
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (-1.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (1)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        LMur,
        LMur + 1,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (0)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (0.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        3 + LMur,
        LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (1.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (-0.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        LMur,
        LMur + 2,
        1,
        monModule,
    )
    print("mur 9 a ÈtÈ exÈcutÈ")MUR 10
def monMur10(m, b, p, o):
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (-0.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (1.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        2 + LMur,
        LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (0.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (1)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        LMur,
        1 + LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (1)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (0.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        1 + LMur,
        LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (1.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (-0.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        LMur,
        2 + LMur,
        1,
        monModule,
    )
    print("mur 10 a ÈtÈ exÈcutÈ")MUR 11
def monMur11(m, b, p, o):
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (-0.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (1.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        2 + LMur,
        LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (0.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (0.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        LMur,
        2 + LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (1)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (-0.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        1 + LMur,
        LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (1.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (-1)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        LMur,
        1 + LMur,
        1,
        monModule,
    )
    print("mur 11 a ÈtÈ exÈcutÈ")MUR 12
def monMur12(m, b, p, o):
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (-0.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (1.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        2 + LMur,
        LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (0.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (0)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        LMur,
        LMur + 3,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (1)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (-1.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        1 + LMur,
        LMur,
        1,
        monModule,
    )
    print("mur 12 a ÈtÈ exÈcutÈ")MUR 13
def monMur13(m, b, p, o):
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (-1)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (1.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        1 + LMur,
        LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (-0.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (1)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        LMur,
        1 + LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (0.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (0.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        2 + LMur,
        LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (1.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (-0.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        LMur,
        2 + LMur,
        1,
        monModule,
    )
    print("mur 13 a ÈtÈ exÈcutÈ")MUR 14
def monMur14(m, b, p, o):
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (-1.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (1)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        LMur,
        1 + LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (-0.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (0.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        2 + LMur,
        LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (0.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (-0.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        LMur,
        2 + LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (1)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (-1.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        1 + LMur,
        LMur,
        1,
        monModule,
    )
    print("mur 14 a ÈtÈ exÈcutÈ")MUR 15
def monMur15(
    m, b, p, o
):  # m et b son les coefficients de translation et f est le facteur pour le quadrant
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (-1)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (1.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        1 + LMur,
        LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (-0.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (0)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        LMur,
        3 + LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (0.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (-1.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        2 + LMur,
        LMur,
        1,
        monModule,
    )
    print("mur 15 a ÈtÈ exÈcutÈ")MUR 16
def monMur16(m, b, p, o):
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (-1.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (0.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        LMur,
        2 + LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (0)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (-0.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        3 + LMur,
        LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (1.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (-1)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        LMur,
        1 + LMur,
        1,
        monModule,
    )
    print("mur 16 a ÈtÈ exÈcutÈ")MUR 17
def monMur17(m, b, p, o):
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (-1.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (1)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        LMur,
        1 + LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (0)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (0.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        3 + LMur,
        LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (1.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (-0.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        LMur,
        2 + LMur,
        1,
        monModule,
    )
    print("mur 17 a ÈtÈ exÈcutÈ")MUR 19
def monMur19(m, b, p, o):
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (-1.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (1)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        LMur,
        1 + LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (-0.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (0.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        2 + LMur,
        LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (0.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (0)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        LMur,
        LMur + 1,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (1)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (-0.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        1 + LMur,
        LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (1.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (-1)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        LMur,
        LMur + 1,
        1,
        monModule,
    )
    print("mur 19 a ÈtÈ exÈcutÈ")MUR 20
def monMur20(m, b, p, o):
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (-1.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (1)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        LMur,
        1 + LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (-1)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (0.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        1 + LMur,
        LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (-0.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (0)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        LMur,
        LMur + 1,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (0.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (-0.5)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        2 + LMur,
        LMur,
        1,
        monModule,
    )
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * m) + LCoul / 2) + (1.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + LCoul
            + (-1)
            + ((LCoul + dim_ModX) * (nb - 1))
        ),
        -1,
        LMur,
        LMur + 1,
        1,
        monModule,
    )
    print("mur 20 a ÈtÈ exÈcutÈ")--------------------------------------------#
--------------------------------------------#
nb = adef murfind(m, b, p, o):
    lotterie = random.randint(0, 18)
    if lotterie is 0:
        monMur6(m, b, p, o)
    if lotterie is 1:
        monMur9(m, b, p, o)
    if lotterie is 2:
        monMur19(m, b, p, o)
    if lotterie is 3:
        monMur20(m, b, p, o)
    if lotterie is 4:
        monMur15(m, b, p, o)
    if lotterie is 5:
        monMur12(m, b, p, o)
    if lotterie is 6:
        monMur4(m, b, p, o)
    if lotterie is 7:
        monMur3(m, b, p, o)
    if lotterie is 8:
        monMur2(m, b, p, o)
    if lotterie is 9:
        monMur1(m, b, p, o)
    if lotterie is 10:
        monMur5(m, b, p, o)
    if lotterie is 11:
        monMur7(m, b, p, o)
    if lotterie is 12:
        monMur8(m, b, p, o)
    if lotterie is 13:
        monMur10(m, b, p, o)
    if lotterie is 14:
        monMur11(m, b, p, o)
    if lotterie is 15:
        monMur13(m, b, p, o)
    if lotterie is 16:
        monMur14(m, b, p, o)
    if lotterie is 17:
        monMur16(m, b, p, o)
    if lotterie is 18:
        monMur17(m, b, p, o)--------------------------------------------#
--------------------------------------------#
------------------------# ATTACHE ENTRE Q4 et Q2 # ------------------------#
nb = adef monAttache():
    monModule(
        (nb - 1) * (dim_ModX + LCoul) + (LCoul + dim_ModX) / 2 - LCoul / 2,
        -(LCoul + dim_ModX + LCoul / 2),
        -1,
        dim_ModX + LCoul,
        LMur,
        1,
        monModule,
    )
    monModule(
        (LCoul + dim_ModX) * (nb - 1) - LCoul / 2,
        -(dim_ModX) / 2 - LCoul / 2,
        -1,
        LMur,
        dim_ModX + LMur + 2 * LCoul,
        1,
        monModule,
    )
    monModule(
        (nb - 1) * (dim_ModX + LCoul)
        + (LCoul + dim_ModX) / 2
        + (dim_ModX + LCoul) / 2
        - LCoul / 2,
        +LCoul / 2,
        -1,
        2 * dim_ModX + 2 * LCoul,
        LMur,
        1,
        monModule,
    )
    monModule(
        (LCoul + dim_ModX) * (nb + 1) - LCoul / 2,
        (dim_ModX + LCoul) / 2 + LCoul / 2,
        -1,
        LMur,
        dim_ModX + LCoul + LMur,
        1,
        monModule,
    )
monAttache()------------------------# ATTACHE ENTRE Q4 et Q3 # ------------------------#
def monAttache():
    monModule(
        -(LCoul / 2 + dim_ModX),
        -((nb - 1) * (dim_ModX + LCoul) + (LCoul + dim_ModX) / 2),
        -1,
        LMur,
        dim_ModX,
        1,
        monModule,
    )
    monModule(
        -(dim_ModX + LCoul) / 2,
        -((LCoul + dim_ModX) * (nb - 1) + LCoul / 2),
        -1,
        dim_ModX + LMur,
        LMur,
        1,
        monModule,
    )
    monModule(
        -LCoul / 2,
        -(
            (nb - 1) * (dim_ModX + LCoul)
            + (LCoul + dim_ModX) / 2
            + (dim_ModX) / 2
            + (LCoul / 2)
        ),
        -1,
        LMur,
        2 * dim_ModX + LCoul + LMur,
        1,
        monModule,
    )
    monModule(
        0,
        -((LCoul + dim_ModX) * (nb + 1) - LCoul / 2),
        -1,
        LCoul + LMur,
        LMur,
        1,
        monModule,
    )
    monModule(
        0,
        -((LCoul + dim_ModX) * (nb + 1) - LCoul / 2),
        -1,
        LCoul + LMur,
        LMur,
        1,
        monModule,
    )
    monModule(
        -(LCoul + dim_ModX),
        -((LCoul + dim_ModX) * (nb) - LCoul / 2),
        -1,
        LCoul + LMur,
        LMur,
        1,
        monModule,
    )
monAttache()------------------------# ATTACHE ENTRE Q3 et Q1 # ------------------------#
def monAttache():
    monModule(
        -((LCoul + dim_ModX) * (nb - 1) - LCoul / 2),
        (LCoul + dim_ModX) / 2,
        -1,
        LMur,
        dim_ModX + 2 * LCoul + 2 * LMur,
        1,
        monModule,
    )
    monModule(
        -((nb - 1) * (dim_ModX + LCoul) + (LCoul) / 2 + (dim_ModX + LCoul) / 2 + LCoul),
        (LCoul / 2) - LMur / 2 + LCoul - (dim_ModX + LCoul) / 2,
        -1,
        2 * dim_ModX + 2 * LCoul,
        LMur,
        1,
        monModule,
    )
    monModule(
        -((nb - 1) * (dim_ModX + LCoul) + (dim_ModX + LCoul) / 2 - LCoul / 2),
        (LCoul / 2)
        + LMur / 2
        + LCoul
        + dim_ModX
        + LCoul
        + LCoul
        - (dim_ModX + LCoul) / 2,
        -1,
        dim_ModX + LCoul,
        LMur,
        1,
        monModule,
    )
    monModule(
        -((LCoul + dim_ModX) * (nb) - LCoul / 2 - LMur / 2),
        (LCoul + dim_ModX) * 2 + LCoul / 2 - (dim_ModX + LCoul) / 2,
        -1,
        LMur,
        LCoul + dim_ModX,
        1,
        monModule,
    )
monAttache()------------------------# ATTACHE ENTRE Q4 et Q1 # ------------------------#
def monAttache():
    monModule(
        (LCoul / 2 + dim_ModX),
        ((nb) * (dim_ModX + LCoul) - (LCoul) / 2),
        -1,
        LMur,
        2 * dim_ModX + (dim_ModX + LCoul) / 2 + LMur,
        1,
        monModule,
    )
    monModule(
        (dim_ModX) / 2 + LCoul / 2,
        ((LCoul + dim_ModX) * (nb - 1) - LCoul / 2),
        -1,
        dim_ModX + LMur,
        LMur,
        1,
        monModule,
    )
    monModule(
        LCoul / 2,
        ((nb) * (dim_ModX + LCoul) + (LCoul + dim_ModX) / 2 + LCoul / 2)
        - (LCoul)
        + LMur / 2,
        -1,
        LMur,
        3 * dim_ModX + LCoul + ((dim_ModX + LCoul) / 2),
        1,
        monModule,
    )
    monModule(
        dim_ModX + LCoul,
        (
            (LCoul + dim_ModX) * (nb + 1)
            - (dim_ModX + LCoul) / 2
            + LCoul / 2
            + LCoul
            + LMur
        ),
        -1,
        LCoul + LMur,
        LMur,
        1,
        monModule,
    )
    monModule(
        0,
        ((LCoul + dim_ModX) * (nb + 2) - dim_ModX / 2 + LCoul / 2 + LCoul / 2 + LMur),
        -1,
        LCoul + LMur,
        LMur,
        1,
        monModule,
    )
monAttache()---------------------------------------------#
---------------------------------------------#
nb = a
for m in range(0, nb):
    b = -m
    murfind(m, b, 1, -1)
    m += 1
    b += 1
for m in range(0, nb):
    b = -m
    murfind(m + 1, b, 1, 1)
    m += 1
    b += 1
for m in range(0, nb):
    b = -m
    murfind(m + 1, b - 1, -1, -1)
    m += 1
    b += 1
for m in range(0, nb):
    b = -m
    murfind(m, b + 1, -1, 1)
    m += 1
    b += 1---------------------------# ATTACHE ENTRE LES MODULES # ---------------------------#
def mon_Attache(m, b, p, o):
    print("mon_Attache a ÈtÈ exÈcutÈ")ATTACHE
    monModule(
        p
        * ((1.5 + ((LCoul + dim_ModX) * (m)) + LCoul / 2 + dim_ModX + LCoul) + (-1.5)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) - LCoul / 2)
            + (1.5 + LCoul / 2)
            + LCoul
            + ((LCoul + dim_ModX) * (nb - 2))
        ),
        -1,
        LMur,
        LCoul + LMur,
        1,
        monModule,
    ),
    monModule(
        p * ((1.5 + ((LCoul + dim_ModX) * (m)) + LCoul / 2) + (1.5 + LCoul / 2)),
        o
        * (
            (1.5 + ((LCoul + dim_ModX) * b) + LCoul / 2)
            + dim_ModX
            + (-1.5)
            + LCoul
            + ((LCoul + dim_ModX) * (nb - 2))
        ),
        -1,
        LCoul + LMur,
        LMur,
        1,
        monModule,
    )QUADRANT X POSTIF & Y POSITIF
for m in range(0, nb - 1):
    b = -m
    mon_Attache((m + 1), (b + 1), 1, 1)
    m += 1
    b += 1QUADRANT X NÉGATIF & Y POSITIF
for m in range(0, nb - 1):
    b = -m
    mon_Attache((m), (b + 2), -1, 1)
    m += 1
    b += 1QUADRANT X NÉGATIF & Y NÉGATIF
for m in range(0, nb - 1):
    b = -m
    mon_Attache((m + 1), (b), -1, -1)
    m += 1
    b += 1QUADRANT X POSTIF & Y NÉGATIF
for m in range(0, nb - 1):
    b = -m
    mon_Attache((m), (b + 1), 1, -1)
    m += 1
    b += 1---------------------------------------------#
---------------------------------------------#
-------------------------------------# --------------QUADRANT I-------------# -------------------------------------#
Le Quadrant 1 se positionne dans le quadrant des x négatifs et y positifs et a une rangée supplémentaire à compter.
t = (
    _Rangée - 1
)  # t est le facteur qui replace le quadrant à l'origine (0,0,0). On le soustrait de 1 car on rajoute au quadrant un rang supplémentaire
nb = _Rangée  # nb est le nombre de rang qu'on veut au départdef monQuadrant(
    nb, k
):  # nb étant le nombre de rang entrer au départ et k la position du rang(par exemple, si on veut un quadrant de rang 4, k indique si on est au 1e, 2e, 3e ou 4e rang)
    for i in range(0, nb):
        for j in range(i, nb):  # i car droite i=j
            monModule(
                (-1) * ((i) * (LCoul + dim_ModX) + (LCoul + dim_ModX) / 2),
                (-1)
                * (
                    (j) * (LCoul + dim_ModY)
                    + (k - t) * (LCoul + dim_ModY)
                    - (LCoul + dim_ModY) / 2
                    - (dim_ModY + LCoul)
                ),
                k * (LCoul + dim_ModZ),
                dim_ModX + LMur,
                dim_ModY + LMur,
                dim_ModZ,
                "Module",
            )Rangées de modules supplémentaires en x et en y
    for i in range(0, nb):
        for j in range(i, nb):  # i car droite i=j
            monModule(
                (-1) * ((i) * (LCoul + dim_ModX) + (LCoul + dim_ModX) / 2),
                (-1)
                * (
                    (j) * (LCoul + dim_ModY)
                    + (k - t) * (LCoul + dim_ModY)
                    - (LCoul + dim_ModY) / 2
                    - (dim_ModY + LCoul)
                ),
                (k + 1) * (LCoul + dim_ModZ),
                dim_ModX + LMur,
                dim_ModY + LMur,
                dim_ModZ,
                "Module",
            )
    for i in range(0, nb):
        for j in range(i, nb):  # i car droite i=j
            monModule(
                (-1) * ((i) * (LCoul + dim_ModX) + (LCoul + dim_ModX) / 2),
                (-1)
                * (
                    (j) * (LCoul + dim_ModY)
                    + (k - t - 1) * (LCoul + dim_ModY)
                    - (LCoul + dim_ModY) / 2
                    - (dim_ModY + LCoul)
                ),
                k * (LCoul + dim_ModZ),
                dim_ModX + LMur,
                dim_ModY + LMur,
                dim_ModZ,
                "Module",
            )LES COULOIRS
    for i in range(0, nb):
        for j in range(i + 1, nb):
            monModule(
                (-1) * ((i) * (LCoul + dim_ModX) + (LCoul + dim_ModX)),
                (-1)
                * (
                    (j) * (LCoul + dim_ModY)
                    + (k - t) * (LCoul + dim_ModY)
                    - (LCoul + dim_ModY) / 2
                    - (dim_ModY + LCoul)
                ),
                k * (LCoul + dim_ModZ),
                LCoul + LMur,
                lCoul + LMur,
                hCoul,
                "Module",
            )
    for i in range(0, nb):
        for j in range(i, nb - 1):
            monModule(
                (-1) * ((i) * (LCoul + dim_ModX) + (LCoul + dim_ModX) / 2),
                (-1)
                * (
                    (j) * (LCoul + dim_ModY)
                    + (LCoul + dim_ModX) / 2
                    + (k - t) * (LCoul + dim_ModY)
                    - (LCoul + dim_ModY) / 2
                    - (dim_ModY + LCoul)
                ),
                k * (LCoul + dim_ModZ),
                LCoul + LMur,
                lCoul + LMur,
                hCoul,
                "Module",
            )Rangées de couloirs supplémentaires en x et en y
    for i in range(0, nb):
        for j in range(i + 1, nb):
            monModule(
                (-1) * ((i) * (LCoul + dim_ModX) + (LCoul + dim_ModX)),
                (-1)
                * (
                    (j) * (LCoul + dim_ModY)
                    + (k - t - 1) * (LCoul + dim_ModY)
                    - (LCoul + dim_ModY) / 2
                    - (dim_ModY + LCoul)
                ),
                k * (LCoul + dim_ModZ),
                LCoul + LMur,
                lCoul + LMur,
                hCoul,
                "Module",
            )
    for i in range(0, nb):
        for j in range(i, nb - 1):
            monModule(
                (-1) * ((i) * (LCoul + dim_ModX) + (LCoul + dim_ModX) / 2),
                (-1)
                * (
                    (j) * (LCoul + dim_ModY)
                    + (LCoul + dim_ModX) / 2
                    + (k - t - 1) * (LCoul + dim_ModY)
                    - (LCoul + dim_ModY) / 2
                    - (dim_ModY + LCoul)
                ),
                k * (LCoul + dim_ModZ),
                LCoul + LMur,
                lCoul + LMur,
                hCoul,
                "Module",
            )
    for i in range(0, nb):
        for j in range(i + 1, nb):
            monModule(
                (-1) * ((i) * (LCoul + dim_ModX) + (LCoul + dim_ModX)),
                (-1)
                * (
                    (j) * (LCoul + dim_ModY)
                    + (k - t) * (LCoul + dim_ModY)
                    - (LCoul + dim_ModY) / 2
                    - (dim_ModY + LCoul)
                ),
                (k + 1) * (LCoul + dim_ModZ),
                LCoul + LMur,
                lCoul + LMur,
                hCoul,
                "Module",
            )
    for i in range(0, nb):
        for j in range(i, nb - 1):
            monModule(
                (-1) * ((i) * (LCoul + dim_ModX) + (LCoul + dim_ModX) / 2),
                (-1)
                * (
                    (j) * (LCoul + dim_ModY)
                    + (LCoul + dim_ModX) / 2
                    + (k - t) * (LCoul + dim_ModY)
                    - (LCoul + dim_ModY) / 2
                    - (dim_ModY + LCoul)
                ),
                (k + 1) * (LCoul + dim_ModZ),
                LCoul + LMur,
                lCoul + LMur,
                hCoul,
                "Module",
            )BRANCHE DE L’HÉLICE
def monHeliceCentrale(h, k):
    monModule(
        (-1) * (0 + h * (LCoul + dim_ModX) + (LCoul + dim_ModX) / 2),
        (LCoul + dim_ModY) / 2,
        k * (LCoul + dim_ModZ),
        dim_ModX,
        dim_ModY + LMur,
        dim_ModZ + LMur,
        monModule,
    )LES COULOIRS
    monModule(
        (-1) * (0 + h * (LCoul + dim_ModX) + (LCoul + dim_ModY) / 2),
        (LCoul + dim_ModY) / 2,
        k * (LCoul + dim_ModZ),
        LCoul + LMur,
        5 * lCoul + LMur,
        hCoul,
        monModule,
    )
    monModule(
        (-1) * (0 + h * (LCoul + dim_ModX)),
        (LCoul + dim_ModY) / 2,
        k * (LCoul + dim_ModZ),
        LCoul + LMur,
        lCoul + LMur,
        hCoul,
        monModule,
    )Fonction de la branche d’hélice
for n in range(0, nb - 1):
    for k in range(0, n + 1):
        monHeliceCentrale(n, k)
        n -= 1
        k += 1FONCTION DU QUADRANT
a = 0
for a in range(0, nb):
    monQuadrant(nb, a)
    nb -= 1  # on soustrait le nombre de rangée de 1 à chaque nouvelle boucle
    a += 1  # on ajoute à a, 1 à chaque nouvelle boucle-------------------------------------# -------------QUADRANT II-------------# -------------------------------------#
Le Quadrant 2 se positionne en x et y positifs et a, comme le Quadrant 1, une rangée supplémentaire
t = _Rangée - 1  # t est le facteur qui repositionne le quadrant à l'origine
nb = _Rangée  # nb est le nombre de rangs qu'on veut au départdef monQuadrant(nb, k):
    for i in range(0, nb):
        for j in range(i, nb):  # i car droite i=j
            monModule(
                (i) * (LCoul + dim_ModX) + (LCoul + dim_ModX) / 2 + (LCoul + dim_ModX),
                (-1)
                * (
                    (j) * (LCoul + dim_ModY)
                    + (k - t) * (LCoul + dim_ModY)
                    - (LCoul + dim_ModY) / 2
                ),
                k * (LCoul + dim_ModZ),
                dim_ModX + LMur,
                dim_ModY + LMur,
                dim_ModZ,
                "Module",
            )Rangées supplémentaire en x et en y
    for i in range(0, nb):
        for j in range(i, nb):  # i car droite i=j
            monModule(
                (i) * (LCoul + dim_ModX) + (LCoul + dim_ModX) / 2 + (LCoul + dim_ModX),
                (-1)
                * (
                    (j) * (LCoul + dim_ModY)
                    + (k - t - 1) * (LCoul + dim_ModY)
                    - (LCoul + dim_ModY) / 2
                ),
                k * (LCoul + dim_ModZ),
                dim_ModX + LMur,
                dim_ModY + LMur,
                dim_ModZ,
                "Module",
            )
    for i in range(0, nb):
        for j in range(i, nb):  # i car droite i=j
            monModule(
                (i) * (LCoul + dim_ModX) + (LCoul + dim_ModX) / 2 + (LCoul + dim_ModX),
                (-1)
                * (
                    (j) * (LCoul + dim_ModY)
                    + (k - t) * (LCoul + dim_ModY)
                    - (LCoul + dim_ModY) / 2
                ),
                (k + 1) * (LCoul + dim_ModZ),
                dim_ModX + LMur,
                dim_ModY + LMur,
                dim_ModZ,
                "Module",
            )LES COULOIRS
    for i in range(0, nb):
        for j in range(i + 1, nb):
            monModule(
                (i) * (LCoul + dim_ModX) + (LCoul + dim_ModX) + (LCoul + dim_ModX),
                (-1)
                * (
                    (j) * (LCoul + dim_ModY)
                    + (k - t) * (LCoul + dim_ModY)
                    - (LCoul + dim_ModY) / 2
                ),
                k * (LCoul + dim_ModZ),
                LCoul + LMur,
                lCoul + LMur,
                hCoul,
                "Module",
            )
    for i in range(0, nb):
        for j in range(i, nb - 1):
            monModule(
                (i) * (LCoul + dim_ModX) + (LCoul + dim_ModX) / 2 + (LCoul + dim_ModX),
                (-1)
                * (
                    (j) * (LCoul + dim_ModY)
                    + (LCoul + dim_ModX) / 2
                    + (k - t) * (LCoul + dim_ModY)
                    - (LCoul + dim_ModY) / 2
                ),
                k * (LCoul + dim_ModZ),
                lCoul + LMur,
                LCoul + LMur,
                hCoul,
                "Module",
            )Rangées de couloirs en x et en y
    for i in range(0, nb):
        for j in range(i + 1, nb):
            monModule(
                (i) * (LCoul + dim_ModX) + (LCoul + dim_ModX) + (LCoul + dim_ModX),
                (-1)
                * (
                    (j) * (LCoul + dim_ModY)
                    + (k - t - 1) * (LCoul + dim_ModY)
                    - (LCoul + dim_ModY) / 2
                ),
                k * (LCoul + dim_ModZ),
                LCoul + LMur,
                lCoul + LMur,
                hCoul,
                "Module",
            )
    for i in range(0, nb):
        for j in range(i, nb - 1):
            monModule(
                (i) * (LCoul + dim_ModX) + (LCoul + dim_ModX) / 2 + (LCoul + dim_ModX),
                (-1)
                * (
                    (j) * (LCoul + dim_ModY)
                    + (LCoul + dim_ModX) / 2
                    + (k - t - 1) * (LCoul + dim_ModY)
                    - (LCoul + dim_ModY) / 2
                ),
                k * (LCoul + dim_ModZ),
                lCoul + LMur,
                LCoul + LMur,
                hCoul,
                "Module",
            )
    for i in range(0, nb):
        for j in range(i + 1, nb):
            monModule(
                (i) * (LCoul + dim_ModX) + (LCoul + dim_ModX) + (LCoul + dim_ModX),
                (-1)
                * (
                    (j) * (LCoul + dim_ModY)
                    + (k - t) * (LCoul + dim_ModY)
                    - (LCoul + dim_ModY) / 2
                ),
                (k + 1) * (LCoul + dim_ModZ),
                LCoul + LMur,
                lCoul + LMur,
                hCoul,
                "Module",
            )
    for i in range(0, nb):
        for j in range(i, nb - 1):
            monModule(
                (i) * (LCoul + dim_ModX) + (LCoul + dim_ModX) / 2 + (LCoul + dim_ModX),
                (-1)
                * (
                    (j) * (LCoul + dim_ModY)
                    + (LCoul + dim_ModX) / 2
                    + (k - t) * (LCoul + dim_ModY)
                    - (LCoul + dim_ModY) / 2
                ),
                (k + 1) * (LCoul + dim_ModZ),
                lCoul + LMur,
                LCoul + LMur,
                hCoul,
                "Module",
            )def monHeliceCentrale(h, k):
    monModule(
        (LCoul + dim_ModY) / 2,
        0 + h * (LCoul + dim_ModX) + (LCoul + dim_ModX) / 2,
        k * (LCoul + dim_ModZ),
        dim_ModX + LMur,
        dim_ModY + LMur,
        dim_ModZ,
        monModule,
    )LES COULOIRS
    monModule(
        (LCoul + dim_ModY) / 2,
        0 + h * (LCoul + dim_ModX),
        k * (LCoul + dim_ModZ),
        LCoul + LMur,
        lCoul + LMur,
        hCoul,
        monModule,
    )
    monModule(
        (LCoul + dim_ModY) / 2,
        0 + h * (LCoul + dim_ModX) + (LCoul + dim_ModX) / 2,
        k * (LCoul + dim_ModZ),
        5 * LCoul + LMur,
        lCoul + LMur,
        hCoul,
        monModule,
    )Fonction de la branche d’hélice
for n in range(0, nb - 1):
    for k in range(0, n + 1):
        monHeliceCentrale(n, k)
        n -= 1
        k += 1Fonction du quadrant
a = 0
for a in range(0, nb):
    monQuadrant(nb, a)
    nb -= 1-------------------------------------# -------------QUADRANT III------------# -------------------------------------#
Le Quadrant 3 se positionne dans le quadrant des x négatifs et y négatifs et n’a pas de spécificité particulière (=> évolution normale).
t = _Rangée  # t indique le facteur qui repositionne le quadrant à l'origine)
nb = _Rangée  # nb est le nombre de rangs qu'on veut au départdef monHelice(nb, k):  # même logique que le Quadrant 1
    for i in range(0, nb):
        for j in range(i, nb):  # i car droite i=j
            monModule(
                (-1) * ((i) * (LCoul + dim_ModX) + (LCoul + dim_ModX) / 2)
                - (dim_ModX + LCoul),
                (j) * (LCoul + dim_ModY)
                + (k - t) * (LCoul + dim_ModY)
                + (LCoul + dim_ModY) / 2,
                k * (LCoul + dim_ModZ),
                dim_ModX + LMur,
                dim_ModY + LMur,
                dim_ModZ,
                "Module",
            )LES COULOIRS
    for i in range(0, nb):
        for j in range(i + 1, nb):
            monModule(
                (-1)
                * ((i) * (LCoul + dim_ModX) + (LCoul + dim_ModX) + (dim_ModX + LCoul)),
                (j) * (LCoul + dim_ModY)
                + (k - t) * (LCoul + dim_ModY)
                + (LCoul + dim_ModY) / 2,
                k * (LCoul + dim_ModZ),
                LCoul + LMur,
                lCoul + LMur,
                hCoul,
                "Module",
            )
    for i in range(0, nb):
        for j in range(i, nb - 1):
            monModule(
                (-1)
                * (
                    (i) * (LCoul + dim_ModX)
                    + (LCoul + dim_ModX) / 2
                    + (dim_ModX + LCoul)
                ),
                (j) * (LCoul + dim_ModY)
                + (k - t) * (LCoul + dim_ModY)
                + LCoul
                + dim_ModY,
                k * (LCoul + dim_ModZ),
                lCoul + LMur,
                LCoul + LMur,
                hCoul,
                "Module",
            )def monHeliceCentrale(h, k):
    monModule(
        (-1) * ((LCoul + dim_ModY) / 2),
        (-1) * (0 + h * (LCoul + dim_ModX) + (LCoul + dim_ModX) / 2),
        k * (LCoul + dim_ModZ),
        dim_ModX + LMur,
        dim_ModY + LMur,
        dim_ModZ,
        monModule,
    )LES COULOIRS
    monModule(
        (-1) * ((LCoul + dim_ModY) / 2),
        (-1) * (0 + h * (LCoul + dim_ModX)),
        k * (LCoul + dim_ModZ),
        LCoul + LMur,
        lCoul + LMur,
        hCoul,
        monModule,
    )
    monModule(
        (-1) * ((LCoul + dim_ModY) / 2),
        (-1) * (0 + h * (LCoul + dim_ModX) + (LCoul + dim_ModX) / 2),
        k * (LCoul + dim_ModZ),
        5 * LCoul + LMur,
        lCoul + LMur,
        hCoul,
        monModule,
    )Fonction de la branche d’hélice
for n in range(0, nb - 1):  # Hélice
    for k in range(0, n + 1):
        monHeliceCentrale(n, k)
        n -= 1
        k += 1Fonction du quadrant
a = 0
for a in range(0, nb):  # même raisonnement que le Quadrant 1
    monHelice(nb, a)
    nb -= 1
    a += 1-------------------------------------# -------------QUADRANT IV-------------# -------------------------------------#
Le Quadrant 4 se positionne en x positif et y négatif Il n’évolue que sur un étage soit z=0
t = _Rangée  # t est le facteur qui replace le quadrant à l'origine (0,0,0)
nb = _Rangéedef monQuadrant(nb, k):  # même raisonnement que le Quadrant 1
    for i in range(0, nb):
        for j in range(i, nb):  # i car droite i=j
            monModule(
                (i) * (LCoul + dim_ModX) + (LCoul + dim_ModX) / 2,
                (j) * (LCoul + dim_ModY)
                + (k - t) * (LCoul + dim_ModY)
                - (LCoul + dim_ModY) / 2,
                0,  # pos_Z=0
                dim_ModX + LMur,
                dim_ModY + LMur,
                dim_ModZ,
                "Module",
            )LES COULOIRS
    for i in range(0, nb):
        for j in range(i + 1, nb):
            monModule(
                (i) * (LCoul + dim_ModX) + (LCoul + dim_ModX),
                (j) * (LCoul + dim_ModY)
                + (k - t) * (LCoul + dim_ModY)
                - (LCoul + dim_ModY) / 2,
                0,  # pos_Z=0
                LCoul + LMur,
                lCoul + LMur,
                hCoul,
                "Module",
            )
    for i in range(0, nb):
        for j in range(i, nb - 1):
            monModule(
                (i) * (LCoul + dim_ModX) + (LCoul + dim_ModX) / 2,
                (j) * (LCoul + dim_ModY)
                + (LCoul + dim_ModX) / 2
                + (k - t) * (LCoul + dim_ModY)
                - (LCoul + dim_ModY) / 2,
                0,  # pos_Z=0
                lCoul + LMur,
                LCoul + LMur,
                hCoul,
                "Module",
            )def monHeliceCentrale(h, k):
    monModule(
        0 + h * (LCoul + dim_ModX) + (LCoul + dim_ModX) / 2,
        (-1) * (0 + (LCoul + dim_ModY) / 2),
        0,
        dim_ModX + LMur,
        dim_ModY + LMur,
        dim_ModZ,
        monModule,
    )LES COULOIRS
    monModule(
        0 + h * (LCoul + dim_ModX) + (LCoul + dim_ModY) / 2,
        (-1) * ((LCoul + dim_ModY) / 2),
        0,
        LCoul,
        5 * lCoul,
        hCoul,
        monModule,
    )  # pos_Z=0
    monModule(
        0 + h * (LCoul + dim_ModX),
        (-1) * ((LCoul + dim_ModY) / 2),
        0,
        LCoul,
        lCoul,
        hCoul,
        monModule,
    )  # pos_Z=0Fonction de la branche d’Hélice
for n in range(0, nb - 1):
    for k in range(0, n + 1):
        monHeliceCentrale(n, k)
        n -= 1
        k += 1Fonction du quadrant
for a in range(0, nb):
    monQuadrant(nb, a)
    nb -= 1
    a += 1